<?php
require_once "../conexion/conexion.php"; // Ajusta la ruta si es necesario

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;


require 'vendor/autoload.php';

// Configurar la zona horaria correcta
date_default_timezone_set('America/Mexico_City');

if ($_SERVER["REQUEST_METHOD"] === "POST") {
    $email = $_POST['email'];
    $token = bin2hex(random_bytes(50)); // Generar un token único

    // Verificar si el correo existe en la base de datos
    $stmt = $conexion->prepare("SELECT id_usuario FROM usuarios WHERE correo = ?");
    $stmt->execute([$email]);
    $user = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($user) {
        $id_usuario = $user['id_usuario'];

        // Guardar el token en la base de datos con fecha de generación
        $stmt = $conexion->prepare("INSERT INTO claves_activacion (id_usuario, clave, fecha_generacion, usado) VALUES (?, ?, NOW(), 0)");
        $stmt->execute([$id_usuario, $token]);

        // Configurar PHPMailer
        $mail = new PHPMailer(true);
        try {
            // Configuración del servidor SMTP
            $mail->isSMTP();
            $mail->Host = 'smtp.hostinger.com'; // Servidor SMTP
            $mail->SMTPAuth = true;
            $mail->Username = 'administracion@monitoreodelagua.com'; // Tu correo
            $mail->Password = 'Isa@280681'; // Tu contraseña
            $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
            $mail->Port = 587;
            $mail->CharSet = 'UTF-8';

            // Configuración del correo
            $mail->setFrom('administracion@monitoreodelagua.com', 'Soporte Tecnico');
            $mail->addAddress($email);
            $mail->isHTML(true);
            $mail->Subject = 'Recuperación de contraseña';
            $mail->Body = "
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; }
                    .container { padding: 20px; }
                    .button {
                        background-color: #4CAF50;
                        border: none;
                        color: white;
                        padding: 15px 32px;
                        text-align: center;
                        text-decoration: none;
                        display: inline-block;
                        font-size: 16px;
                        margin: 4px 2px;
                        cursor: pointer;
                    }
                </style>
            </head>
            <body>
                <div class='container'>
                    <h2>Recuperación de contraseña</h2>
                    <p>Has solicitado restablecer tu contraseña. Haz clic en el siguiente enlace:</p>
                    <p><a href='https://monitoreodelagua.com/Ajax/reset_password.php?token=$token' class='button'>
                        Restablecer contraseña
                    </a></p>
                    <p>Si no solicitaste este cambio, puedes ignorar este correo.</p>
                    <p>Este enlace expirará en 24 horas por seguridad.</p>
                </div>
            </body>
            </html>";

            $mail->send();
            echo json_encode(["status" => "success", "message" => "Correo enviado con éxito"]);
        } catch (Exception $e) {
            echo json_encode(["status" => "error", "message" => "Error al enviar correo: " . $mail->ErrorInfo]);
        }
    } else {
        echo json_encode(["status" => "error", "message" => "Correo no registrado"]);
    }
}
?>